package com.oig.sys.base.dto;

import com.oig.common.validator.GroupAdd;
import com.oig.common.validator.GroupEdit;
import io.swagger.v3.oas.annotations.media.Schema;

import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import java.util.List;

@Schema
@Data
public class CountryDto {

    @Schema(description = "编码", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @NotEmpty(message = "参数错误,编码不能为空", groups={GroupAdd.class, GroupEdit.class})
    @Length(max = 6,min = 1, message = "参数错误,编码1-6位", groups={GroupAdd.class,GroupEdit.class})
    private String code;

    @Schema(description = "编码List", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private List<String> codeList;    /**
     */
    @Schema(description = "名称", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @NotEmpty(message = "参数错误,名称不能为空", groups={GroupAdd.class,GroupEdit.class})
    private String name;

    /**
     */
    @Schema(description = "英文名称")
    private String enName;

    /**
     * 地区的代码为，国家代码（3位）+ 代码去掉国家代码
     */
    @Schema(description = "国际编码iso")
    private String isoCode;

    /**
     * 组成 州为单个数字 ，海洋特殊 国家 第一位为州 再加上code，其他也一样
     */
    @Schema(description = "group")
    private String groupCode;

    /**
     */
    @Schema(description = "简码")
    private String shortCode;

    /**
     * 地区类型 0-洲 1-国家地区 2-城市
     */
    @Schema(description = "地区类型 0-洲 1-国家地区 2-城市")
    //@NotEmpty(message = "参数错误,地区类型不能为空", groups={GroupAdd.class,GroupEdit.class})
    //@Pattern(regexp = "[0-4]", message = "地区类型为0-4的数值")
    private String areaType;

    /**
     * 虽然code和iso_code都能判断上下级，但是个人觉得还是加上parentcode方便查询
     */
    @Schema(description = "上级编码")
    private String parentCode;

    @Schema(description = "单证申请-国别地区映射")
    private String applyCode;
    /**
     * 查询条件
     */
    @Schema(description = "状态,查询条件")
    private String status;
}
